
import { RobotEntity } from "../RobotEntity";

import { EnumBehaviorActionType } from "./EnumBehaviorActionType";
import { EnumBehaviorReturn } from "./EnumBehaviorReturn";

export interface IBehavior extends Behavior{}

export abstract class Behavior {


    public entity: RobotEntity;

    abstract type: string;

    public actionType: EnumBehaviorActionType = EnumBehaviorActionType.Selector;

    public actionState: EnumBehaviorReturn = EnumBehaviorReturn.IDLE;

    public bindEntity(entity: RobotEntity): void {
        this.entity = entity;
    }

    
    public getEntity(): RobotEntity {
        return this.entity;
    }


    public condition(): boolean {

        return false;

    }


    public action(): EnumBehaviorReturn {

        return this.actionState;

    }

    public getActionState():EnumBehaviorReturn{
        return this.actionState;
    }




}